/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package isgesis;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;

/**
 *
 * @author Martin
 */
public class PersistenciaOrden {

    public void crearOrden(Orden orden) throws SQLException {
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            String query = "INSERT INTO `ordenes`(`fecha`, `manoObra`, `fechaCarta`, `fechaPago`, `observaciones`, `precio`, `numeroCarta`, `otros`, `materiales`, `descripcion`, `idEstado`, `idReclamo`, `idCliente`, `idLugar`, `pareja`, `nombreCarta`, `pagada`) VALUES (UTC_DATE(),'" + orden.getManoObra() + "','" + sdf.format(orden.getFechaCarta()) + "','" + sdf.format(orden.getFechaPago()) + "','" + orden.getObsrvaciones() + "','" + orden.getPrecio() + "',"+orden.getNumeroCarta()+",'" + orden.getOtros() + "','" + orden.getMateriales() + "','" + orden.getDescripcion() + "','" + orden.getEstado().getId() + "','" + orden.getReclamo().getId() + "','" + orden.getCliente().getId() + "','" + orden.getLugar().getId() + "'," + orden.isPareja() + ",'" + orden.getNombreCarta() + "'," + orden.isPagada() + ")";
            System.out.println(query);
            Conexion con = Conexion.getInstance();
            con.insert(query);
        } catch (SQLException ex) {
            throw new UnsupportedOperationException(ex.toString());
        }

    }

    public Orden select(int numero) throws ParseException {
        Orden orden = new Orden();
        try {
            String query = "Select fecha,manoObra,fechaCarta, fechaPago, observaciones, precio, numeroCarta, otros, materiales, descripcion, idEstado, idReclamo, idCliente, idLugar, pareja, nombreCarta, pagada from ordenes where numero =" + numero;
            Conexion con = Conexion.getInstance();
            ResultSet rs = con.select(query);
            while (rs.next()) {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                orden.setNumero(numero);
                orden.setFecha(sdf.parse(rs.getObject(1).toString()));
                orden.setManoObra(rs.getObject(2).toString());
                orden.setFechaCarta(sdf.parse(rs.getObject(3).toString()));
                orden.setFechaPago(sdf.parse(rs.getObject(4).toString()));
                orden.setObsrvaciones(rs.getObject(5).toString());
                orden.setPrecio(rs.getObject(6).toString());
                orden.setNumeroCarta(Integer.parseInt(rs.getObject(7).toString()));
                orden.setOtros(rs.getObject(8).toString());
                orden.setMateriales(rs.getObject(9).toString());
                orden.setDescripcion(rs.getObject(10).toString());
                PersistenciaEstado pe = PersistenciaEstado.getInstance();
                ArrayList<Object> datos = new ArrayList<Object>();
                datos.add(Integer.parseInt(rs.getObject(11).toString()));
                datos.add("idEstado");
                orden.setEstado(pe.selectEstado(datos).get(0));
                PersistenciaReclamo pr = PersistenciaReclamo.getInstance();
                datos.clear();
                datos.add(Integer.parseInt(rs.getObject(12).toString()));
                datos.add("idReclamo");
                orden.setReclamo(pr.selectReclamo(datos).get(0));
                PersistenciaCliente pc = PersistenciaCliente.getInstance();
                datos.clear();
                datos.add(Integer.parseInt(rs.getObject(13).toString()));
                datos.add("idCliente");
                orden.setCliente(pc.selectClientes(datos).get(0));
                PersistenciaLugar pl = PersistenciaLugar.getInstance();
                datos.clear();
                datos.add(Integer.parseInt(rs.getObject(14).toString()));
                datos.add("idLugar");
                orden.setCliente(pc.selectClientes(datos).get(0));
                orden.setObsrvaciones(rs.getObject(15).toString());
                orden.setObsrvaciones(rs.getObject(16).toString());
                orden.setObsrvaciones(rs.getObject(17).toString());
            }
            ArrayList<Funcionario> funcionarios = new ArrayList<Funcionario>();
            PersistenciaFuncionario pf = PersistenciaFuncionario.getInstance();
            ArrayList<Object> datos = new ArrayList<Object>();
            datos.add(numero);
            datos.add("idOrden");
            funcionarios = (ArrayList<Funcionario>) pf.selectFuncionario(datos);
        } catch (SQLException ex) {
            throw new UnsupportedOperationException(ex.toString());
        }
        return orden;
    }
}
